import { gp } from '@vui'
import isEmpty from 'lodash/isEmpty'
import { translateTitle } from '@/utils/i18n'
//必须带done回调 执行完成调用
export default function getTableColumnsSelect({ vm, action, done, eventName }) {
  let tableId = action.extension.tableId.value && action.extension.tableId.value[0]

  if (tableId) {
    let _table = vm.vuiComponents[tableId]
    let _value = []
    if (_table.self.hasCheckboxOrRadio == 'checkbox') {
      _value = _table.ref.getCheckboxRecords() || []
    } else {
      _value = _table.ref.getRadioRecord() || []
    }
    if (action.extension.maxRowNumber != undefined) {
      let maxRowNumber = action.extension.maxRowNumber.value
      if (_value.length > maxRowNumber && maxRowNumber != 0) {
        gp.$baseMessage(`${translateTitle('Ve.eventTask.超过最大')} ${maxRowNumber} ${translateTitle('Ve.eventTask.条数限制')}`, 'warning')
        // 修改任务队列执行状态，防止下一次事件被拦截
        vm[`${eventName}IsRunning`] = false
        return false
      }
    }

    if (!isEmpty(_value)) {
      // 存储动作数据
      vm.$store.dispatch('actionDatas/setActionsData', {
        moduleId: vm.info._id,
        actionId: action._id,
        actionData: _value,
      })
      done(null, _value)
    } else {
      // 取消未获取到选择数据时错误提示（在表格选中状态切换事件中会存在问题）
      // done(null, {})  // 暂时先取消
      gp.$baseMessage(translateTitle('Ve.eventTask.未选择数据'), 'warning')
      // 修改任务队列执行状态，防止下一次事件被拦截
      vm[`${eventName}IsRunning`] = false
    }
  } else {
    gp.$baseMessage(translateTitle('Ve.eventTask.没有找到组件'), 'warning')
    // 修改任务队列执行状态，防止下一次事件被拦截
    vm[`${eventName}IsRunning`] = false
  }
}
